import axios from 'axios'; // 引入axios
// vant的toast提示框组件
import { Toast } from 'vant';

axios.defaults.timeout = 50000;//超时时间

// 请求拦截器
axios.interceptors.request.use(
    config => {
        config.headers.channelCode = 'cm-m'
        return config;
    },
    error => {
        return Promise.error(error);
    })

// 响应拦截器
axios.interceptors.response.use(
    response => {

        if (response.data.code === 401) {
            setTimeout(() => {
                window.bridge.onTokenInvalid( //token 过期后调用
                    {
                        "source": "Result_statistic"
                    }
                )
            }, 1000);
        }
		if (response.data.code === 554) {
		    // 554	
			Toast(response.data.message)
			return
		}
        return response
    },
    // 服务器状态码不是2开头的的情况
    // 这里可以跟你们的后台开发人员协商好统一的错误状态码    
    // 然后根据返回的状态码进行一些操作，例如登录过期提示，错误提示等等
    // 下面列举几个常见的操作，其他需求可自行扩展
    error => {
        return error.response;
    }

);
//get请求方法
function get (url, params) {
    return new Promise((resolve, reject) => {
        axios.get(url, {
            params: params
        }).then(res => {
            resolve(res);
        }).catch(err => {
            reject(err.data)
        })
    });
}
//post请求方法
function post (url, params) {
    return new Promise((resolve, reject) => {
        axios.post(url, params)
            .then(res => {
                resolve(res);
            })
            .catch(err => {
                reject(err.data)
            })
    });
}
export default {
    get,
    post
}